<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        
    </style>
</head>
<body>
    
</body>
<script>

    // var str = "365";
    // var str = "365abc";
    // var str = "36abc567";
    // var str = "abc567";
    // var str = "abc";
    // var str = "365.789";
    // var str = true;
    // var str = false;
    // var str = {};
    // var str = [];
    // var str = ["hello"];
    // var str = [345];
    // var str = ["354"];
    // var str = [true];
    // var str = [345, 678];
    // var str = ["hello", 678];
    // var str = function(){};
    // var str = undefined;
    // var str = null;
    // console.log( str );
    // console.log( parseInt(str) );

    // 非严格转换的规则
    // 字符：从左向右依次检测，能转则转，遇到不能转换的字符，停止转换并返回已经转好的数据。如果第一位就不能转，直接NaN
    // 布尔：NaN
    // 花括号对象，函数，undefined，null都是NaN
    // 中括号对象：
    //     - 空数组：NaN
    //     - 非空数组从左向右依次检测，能转则转，不能转就停止，首位不能转，直接NaN
    
    // parseInt：不识别小数，非严格转换
    // parseFloat：可以识别小数，非严格转换

    // var str = "365";
    // var str = "365abc";
    // var str = "36abc567";
    // var str = "abc567";
    // var str = "abc";
    // var str = "365.789";
    // var str = true;
    // var str = false;
    // var str = {};
    // var str = [];
    // var str = ["hello"];
    // var str = [345];
    // var str = ["354"];
    // var str = [true];
    // var str = [345, 678];
    // var str = ["hello", 678];
    // var str = function(){};
    // var str = undefined;
    // var str = null;
    // console.log( str );
    // console.log( parseFloat(str) );


    // Math.round()：四舍五入取最近的整数，严格转换

    // var str = "365";
    // var str = "365abc";
    // var str = "36abc567";
    // var str = "abc567";
    // var str = "abc";
    // var str = "365.789";
    // var str = true;
    // var str = false;
    // var str = {};
    // var str = [];
    // var str = ["hello"];
    // var str = [345];
    // var str = ["354"];
    // var str = [true];
    // var str = [345, 678];
    // var str = ["hello", 678];
    // var str = function(){};
    // var str = undefined;
    // var str = null;
    // console.log( str );
    // console.log( Math.round(str) );

    // 严格转换的规则
    // 字符：任意位置出现非数字，都是NaN
    // 布尔：true为1，fale为0
    // 花括号对象，函数，undefined都是NaN
    // null为0
    // 中括号对象：
    //     - 空数组：0
    //     - 有且只有一个数字类数据的数据，就是这个数值，其他都是NaN
    
    
    console.log( Number( "0" ) )
    console.log( Number( 0 ) )
    console.log( Number( -365 ) )
    console.log( Number( "-365" ) )
    console.log( Number( "365" ) )
    console.log( Number( "365.789" ) )
    console.log( Number( "365a" ) )
    console.log( Number( true ) )
    console.log( Number( false ) )
    console.log( Number( {} ) )
    console.log( Number( {num:123412} ) )
    console.log( Number( [] ) )
    console.log( Number( ["456"] ) )
    console.log( Number( [true] ) )
    console.log( Number( [45, 67] ) )
    console.log( Number( function(){} ) )
    console.log( Number( undefined ) )
    console.log( Number( null ) )




    
</script>
</html>